Database transactions typically include operations that read, create, or modify data in the database. These operations can be data manipulation language (DML) statements, such as DML statements in the structured query language (SQL). Typically, one or more DML statements are included in a transaction—a group of statements that are processed together as a unit. For instance, a user or application may sequentially specify multiple DML statements. If desired, the entire transaction can be committed, which ends the transaction and makes the results visible to other database clients (e.g., which read the database). In other cases, a user may wish to abort the transaction, without committing the statements, which can be carried out by a rollback operation.
Database transactions can instead include operations that affect metadata associated with the database, as opposed to database records. These operations can be data definition (or description) language (DDL) statements, such as DDL statements in SQL. DDL statements can specify operations such as creating a table, dropping a table, altering a structure of a table, creating of a table index, and creating database views. While multiple DML statements can be included in a single transaction, with or without a commit operation being carried out, typical database systems perform a commit operation after each DDL statement is executed. The commit operation may be implicit (e.g., not directly specified by a user or application).